/**
 * @author Paul Paul
 */

#include <stdarg.h>
#include <stdio.h>

typedef void (* voidf) ();

typedef void * (* ctorf) (void * self, va_list * app);

typedef void * (* dtorf) (void * self);

typedef int (* differf) (void const * self, void const * b);

typedef int (* putof) (void const * self, FILE * fp);

typedef struct Class Class;

typedef struct Object {
    Class const * class;
} Object;

struct Class {
    const Object _;
    char const * name;
    Class const * super;
    size_t size;
    ctorf ctor;
    dtorf dtor;
    differf differ;
    putof puto;
};

void const * CObject;
void const * CClass;

int main () {
}
